Feature point detection and matching of detected features are a preliminary stage in numeric data processing, for example in image processing and computer vision applications such as image registration, panorama creation, 3D reconstruction, object recognition, camera calibration or robot navigation. Corners and blobs are typical local image features which can be used for this purpose.
Several feature detection algorithms are known in the art. Much effort has been spent in making algorithms robust to various image artifacts, such as illumination variation, noise, blur, rotation, scale, affine transformation etc., and to improve the execution time performance. For example, most feature detector filters known in the art, such as Laplacian-of-Gaussian, Difference-of-Gaussian, Hessian or Harris' corner-less function, use first or second order Gaussian derivative filters, thereby emphasizing on planar rotational invariance.
However, detection algorithms known in the art have their disadvantages. For instance, some known detection algorithms do not detect the scale information of the image features. Generally, they are fast in computation when compared to multi-scale based methods, but are slower or have similar speed compared to direct-intensity based methods. Although they are generally invariant to image artifacts such as illumination variation, noise or rotation, they are unfortunately not invariant to scale changes.
Other state of the art detection algorithms operate directly on the intensities in the image patch to detect and localize the feature points. Since no image filtering is applied, such algorithms are generally fast to compute compared to other categories. Some drawbacks of these algorithms are that typically fewer feature points are detected compared to other methods and that such algorithms may be less reliable in the presence of image noise and less invariant to scale.
Some state of the art detection algorithms filter the image using a filter bank with different filters over different scales. Such algorithms may apply, for example, multi-scale filter banks. However, the use of different filters to obtain multi-scale filtering typically implies an increased computation time.
Hence, there exists a need for a method for efficiently detecting features that is strongly resistant to variation of scale, resolution, zoom, blur, motion-blur, limited viewpoint rotation, illumination, image compression and noise.
As state of the art detection algorithms may not perform optimally in reliably detecting features under realistic conditions, e.g. under scale variations and blurring, such algorithms may also not be optimal for reliably aligning images based on detected corresponding features in images to be co-registered.